package org.jeecg.modules.app.util.order;

import java.math.BigDecimal;
import java.util.HashMap;
import java.util.Map;

/**
 * @BelongsProject: jeecg-boot-parent  计算 租借订单收益 上涨 下降 百分比
 * @BelongsPackage: org.jeecg.modules.app.util.order
 * @Author: mi
 * @CreateTime: 2024-07-30 18:12
 * @Description:
 */
public class OrderIncomeUtil {


    /**
     * 计算 租借订单收益 上涨 下降 百分比
     * @param one
     * @param two
     * @return
     */
    public static Map<String, Object> getOrderIncomeUtilMap(BigDecimal one , BigDecimal two){
        BigDecimal zero=new BigDecimal("0.00");//自定义模拟值
        //compareTo方法返回值有3个，分别是 -1(小于)，0（等于），1（大于），从此我们看出只需要判断返回值和0的大小即可
        String shopType="";//0 代表 无差异 1 上涨  2下降
        String percentage="";
        Map<String, Object> map=new HashMap();
        if (one.compareTo(two)==0){//相等
            shopType="0";
            percentage="0%";
        }else {//不相等
            if (one.compareTo(zero)==0){//当前周收益是不是0
                shopType="2";//下降
                percentage="-100%";
            }else if (two.compareTo(zero)==0){//上周收益是不是0
                shopType="1";//上涨
                percentage="100%";
            }else {
                // （337-432）除以432乘以100%，正表示上升，负表示下降，即（今减去昨）除以昨乘100%
                BigDecimal j=  one.subtract(two);
                BigDecimal c= j.divide(two,2, BigDecimal.ROUND_HALF_UP);
                BigDecimal jie=  c.multiply(new BigDecimal("100"));//得出结果  正数代表上涨  负数代表下降
                percentage=jie+"%";
                if (jie.compareTo(zero)==-1){//负数
                    shopType="2";//下降
                }else {
                    shopType="1";//上涨
                }
            }
        }
        map.put("shopType",shopType);
        map.put("percentage",percentage);

        return map;
    }
}
